<?php
/**
* 名称：Session操作类。
* 描述：统一管理"Session概念领域"，创建方便、快捷的操作方法。
*/
final class Session{
    /**
    * 描述：启用session，PHP的session默认是关闭，使用前需要先打开。
    * @return bool
    */
    public static function Start(){
        if(!isset($_SESSION)){
            return session_start();
        }
    }

    /**
    * 描述：获取当前会话的Session ID。
    * @param  string $sessionID 可选 要设置的session标识值。
    * @return string
    */
    public static function ID($sessionID=NULL){
        if(isset($sessionID)){
            session_id($sessionID);
        }
        else{
            self::Start();
        }
        return session_id();
    }

    /**
    * 描述：创建新的session变量值，并返回该变量值。
    * @param  string $name  必选 session的名称。
    * @param  mix    $value 必选 session的值。
    * @return mix
    */
    public static function Set($name,$value){
        self::Start();
        $_SESSION[$name]=$value;
        return $_SESSION[$name];
    }

    /**
    * 描述：获取指定名称的session变量值。
    * @param  string $name 必选 session的名称。
    * @return mix
    */
    public static function Get($name){
        self::Start();
        if(array_key_exists($name,$_SESSION)){
            return $_SESSION[$name];
        }
        else{
            return NULL;
        }
    }

    /**
    * 描述：删除指定Session。
    * @param string $name 必选 要删除session的名称。
    * @return void
    */
    public static function Delete($name){
        unset($_SERVER[$name]);
    }

    /**
    * 描述：清除所有session。
    * @return void
    */
    public static function Abandon(){
        session_unset();
        session_destroy();
    }
}
?>